/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.util.*;


public class EjercicioThread2 {


    public static void main(String[] args) {

        Scanner s=new Scanner(System.in);
        long numero=1;
        
        // emula la entrada de datos por teclado muy deprisa
        // for (numero=259;numero<859;numero=numero+3)

        while((numero=s.nextLong())>0)
        {
            System.out.println("numero:" + numero);
            Thread t1 =new HiloPrimos("HilosPrimos", numero);
            Thread t2 =new HiloDivisores("HiloDivisores",numero);
            t1.start();
            t2.start();
            
            // una forma de esperar que hemos visto en clase
            // while(t1.isAlive() || t2.isAlive()) Thread.yield();
            
            //Otra manera es la siguiente:
            try{
                t1.join(); // hace que main espere hasta que acabe t1
                t2.join(); // hace que main espere hasta que acabe t2
            }catch(Exception e)
            {
            }
        }
        
        
    }
}
